IMotion.SetAxisGearInPos 方法
此命令為從同步點開始的從軸和主軸間的位置齒輪比。
注意:欲使用 SetGearInPos(),主軸需處於移動中以恆定速度移動。
運作方式:
首先,從軸使用 IMotion.MoveAxisContinuousAbsolute 方法,在正確的時間及速度到達 SlaveSyncPosition,Velocity、Acceleration 與 Deceleration 輸入可供 IMotion.MoveAxisContinuousAbsolute 運動設定,運動執行時,StartSync 輸出為 TRUE,一旦此運動完成,InSync 輸出將為 TRUE。
GearInPos 設定檔:
- 若 MasterStartDistance 非零,主軸位置一到達 MasterSyncPosition +- MasterStartDistance 時從軸即開始移動,Velocity 被視為可能無法達到的最大速度,除非速度太低,否則基本上會被省略,由於無法產生相容的設定檔因此將觸發錯誤。
- 若 MasterStartDistance 為零而 Velocity 非零,將依據提供的最大速度計算可能的最短路徑設定。
- 若 MasterStartDistance 及 Velocity 皆為零,KINGSTAR 將產生一個最順路徑設定。
組合: IntervalZero.KINGSTAR.Base.Api (於 IntervalZero.KINGSTAR.Base.dll) 版本:4.4.0.0
語法
KsCommandStatus SetAxisGearInPos(
int Master,
int Slave,
bool Permanent,
double Ratio,
McSource MasterValueSource,
double MasterSyncPosition,
double SlaveSyncPosition,
McSyncMode SyncMode,
double MasterStartDistance,
double Velocity,
double Acceleration,
double Deceleration,
double Jerk,
McBufferMode BufferMode
)
Function SetAxisGearInPos(
Master As Integer,
Slave As Integer,
Permanent As Boolean,
Ratio As Double,
MasterValueSource As McSource,
MasterSyncPosition As Double,
SlaveSyncPosition As Double,
SyncMode As McSyncMode,
MasterStartDistance As Double,
Velocity As Double,
Acceleration As Double,
Deceleration As Double,
Jerk As Double,
BufferMode As McBufferMode
) As KsCommandStatus
參數
Master [in]
型別:int
主軸的索引。索引以 0 為起始;別名將影響此參數。
Slave [in]
型別:int
從軸的索引。索引以 0 為起始;別名將影響此參數。從軸數量最多為 32。
Permanent [in]
型別:bool
決定馬達停用後是否保留齒輪狀態。
true:即使馬達停用仍保留齒輪狀態,例如當主軸啟用時從軸也會跟著啟用,而當主軸發生錯誤從軸也會發生錯誤。
false:馬達停用後不會保留齒輪狀態。
Ratio [in]
型別:double
齒輪比率。
MasterValueSource [in]
型別:McSource
定義同步的來源。
- mcSetValue – 同步主軸設定值,建議使用此設定。
- mcActualValue – 同步主軸實際值,此設定可能不穩定。
- mcSecondEncoderValue – 軸的第二編碼器的實際值。
注意:尚未支援 mcSecondEncoderValue。
MasterSyncPosition [in]
型別:double
從軸與主軸同步時主軸的位置。
SlaveSyncPosition [in]
型別:double
從軸與主軸同步時從軸的位置。
SyncMode [in]
型別:McSyncMode
定義同步的方式。
MasterStartDistance [in]
型別:double
為了與從軸同步,主軸所移動的距離(當從軸開始進入同步時)。
Velocity [in]
型別:double
同步階段時的最大速度。
Acceleration [in]
型別:double
同步階段時的最大加速度。
Deceleration [in]
型別:double
同步階段時的最大減速度。
Jerk [in]
型別:double
同步階段時的最大加加速度。
BufferMode [in]
型別:McBufferMode
定義如何融合兩方法的速度。
回傳值
回傳 KsCommandStatus 類別。
備註
- 若使用 MasterStartDistance,直到主軸以正確的方向跨過 MasterSyncPosition 或 MasterStartDistance 前,任何先前的運動都會繼續執行(依照 MasterStartDistance 的指示)。若在同步發生之前對從軸執行停止命令,同步將被取消且此方法將發送 CommandAborted。
- 若未指定 MasterStartDistance,則系統可根據其他相關輸入計算同步設定位置。
- 在 SyncMode中,
mcCatchUp
與mcSlowDown
的差別在於同步所需的能量。相較於mcCatchUp
,mcSlowDown
需求的能量較少。 - 欲分離從軸,請使用 ReleaseAxis。
- 當模數軸啟用時,只有主軸可配置為模數軸,且 MasterSyncPosition 將被轉換為模數值,而 MasterStartDistance 不會被轉換。例如,若模數值為 360,當主軸的目前位置為 0,速度設定為 180/s,且 MasterSyncPosition 設定為 -20,則主軸將使用 340 作為同步位置。
範例
N/A
參見